#include <iostream>

class base
{
public:
    virtual void print (int n = 0)
    {
	std::cout << "base n = " << n << std::endl;
    }
    void outp (int n = 0)
    {
	std::cout << "base outp = " << n << std::endl;
    }
};
class test : public base
{
public:
    virtual void print (int n)
    {
	std::cout << "test n = " << n  << __PRETTY_FUNCTION__ << "     " << __FUNCTION__ << std::endl;
    }
    void outp (int n = 0)
    {
	std::cout << "test outp = " << n << std::endl;
    }
};

int main ()
{
    base *p = new test();
    p->print ();
    p->outp ();
    delete p;
}
